{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "1198cc7c",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "数据集特征值： [[5.1 3.5 1.4 0.2]\n",
      " [4.9 3.  1.4 0.2]\n",
      " [4.7 3.2 1.3 0.2]\n",
      " [4.6 3.1 1.5 0.2]\n",
      " [5.  3.6 1.4 0.2]\n",
      " [5.4 3.9 1.7 0.4]\n",
      " [4.6 3.4 1.4 0.3]\n",
      " [5.  3.4 1.5 0.2]\n",
      " [4.4 2.9 1.4 0.2]\n",
      " [4.9 3.1 1.5 0.1]\n",
      " [5.4 3.7 1.5 0.2]\n",
      " [4.8 3.4 1.6 0.2]\n",
      " [4.8 3.  1.4 0.1]\n",
      " [4.3 3.  1.1 0.1]\n",
      " [5.8 4.  1.2 0.2]\n",
      " [5.7 4.4 1.5 0.4]\n",
      " [5.4 3.9 1.3 0.4]\n",
      " [5.1 3.5 1.4 0.3]\n",
      " [5.7 3.8 1.7 0.3]\n",
      " [5.1 3.8 1.5 0.3]\n",
      " [5.4 3.4 1.7 0.2]\n",
      " [5.1 3.7 1.5 0.4]\n",
      " [4.6 3.6 1.  0.2]\n",
      " [5.1 3.3 1.7 0.5]\n",
      " [4.8 3.4 1.9 0.2]\n",
      " [5.  3.  1.6 0.2]\n",
      " [5.  3.4 1.6 0.4]\n",
      " [5.2 3.5 1.5 0.2]\n",
      " [5.2 3.4 1.4 0.2]\n",
      " [4.7 3.2 1.6 0.2]\n",
      " [4.8 3.1 1.6 0.2]\n",
      " [5.4 3.4 1.5 0.4]\n",
      " [5.2 4.1 1.5 0.1]\n",
      " [5.5 4.2 1.4 0.2]\n",
      " [4.9 3.1 1.5 0.2]\n",
      " [5.  3.2 1.2 0.2]\n",
      " [5.5 3.5 1.3 0.2]\n",
      " [4.9 3.6 1.4 0.1]\n",
      " [4.4 3.  1.3 0.2]\n",
      " [5.1 3.4 1.5 0.2]\n",
      " [5.  3.5 1.3 0.3]\n",
      " [4.5 2.3 1.3 0.3]\n",
      " [4.4 3.2 1.3 0.2]\n",
      " [5.  3.5 1.6 0.6]\n",
      " [5.1 3.8 1.9 0.4]\n",
      " [4.8 3.  1.4 0.3]\n",
      " [5.1 3.8 1.6 0.2]\n",
      " [4.6 3.2 1.4 0.2]\n",
      " [5.3 3.7 1.5 0.2]\n",
      " [5.  3.3 1.4 0.2]\n",
      " [7.  3.2 4.7 1.4]\n",
      " [6.4 3.2 4.5 1.5]\n",
      " [6.9 3.1 4.9 1.5]\n",
      " [5.5 2.3 4.  1.3]\n",
      " [6.5 2.8 4.6 1.5]\n",
      " [5.7 2.8 4.5 1.3]\n",
      " [6.3 3.3 4.7 1.6]\n",
      " [4.9 2.4 3.3 1. ]\n",
      " [6.6 2.9 4.6 1.3]\n",
      " [5.2 2.7 3.9 1.4]\n",
      " [5.  2.  3.5 1. ]\n",
      " [5.9 3.  4.2 1.5]\n",
      " [6.  2.2 4.  1. ]\n",
      " [6.1 2.9 4.7 1.4]\n",
      " [5.6 2.9 3.6 1.3]\n",
      " [6.7 3.1 4.4 1.4]\n",
      " [5.6 3.  4.5 1.5]\n",
      " [5.8 2.7 4.1 1. ]\n",
      " [6.2 2.2 4.5 1.5]\n",
      " [5.6 2.5 3.9 1.1]\n",
      " [5.9 3.2 4.8 1.8]\n",
      " [6.1 2.8 4.  1.3]\n",
      " [6.3 2.5 4.9 1.5]\n",
      " [6.1 2.8 4.7 1.2]\n",
      " [6.4 2.9 4.3 1.3]\n",
      " [6.6 3.  4.4 1.4]\n",
      " [6.8 2.8 4.8 1.4]\n",
      " [6.7 3.  5.  1.7]\n",
      " [6.  2.9 4.5 1.5]\n",
      " [5.7 2.6 3.5 1. ]\n",
      " [5.5 2.4 3.8 1.1]\n",
      " [5.5 2.4 3.7 1. ]\n",
      " [5.8 2.7 3.9 1.2]\n",
      " [6.  2.7 5.1 1.6]\n",
      " [5.4 3.  4.5 1.5]\n",
      " [6.  3.4 4.5 1.6]\n",
      " [6.7 3.1 4.7 1.5]\n",
      " [6.3 2.3 4.4 1.3]\n",
      " [5.6 3.  4.1 1.3]\n",
      " [5.5 2.5 4.  1.3]\n",
      " [5.5 2.6 4.4 1.2]\n",
      " [6.1 3.  4.6 1.4]\n",
      " [5.8 2.6 4.  1.2]\n",
      " [5.  2.3 3.3 1. ]\n",
      " [5.6 2.7 4.2 1.3]\n",
      " [5.7 3.  4.2 1.2]\n",
      " [5.7 2.9 4.2 1.3]\n",
      " [6.2 2.9 4.3 1.3]\n",
      " [5.1 2.5 3.  1.1]\n",
      " [5.7 2.8 4.1 1.3]\n",
      " [6.3 3.3 6.  2.5]\n",
      " [5.8 2.7 5.1 1.9]\n",
      " [7.1 3.  5.9 2.1]\n",
      " [6.3 2.9 5.6 1.8]\n",
      " [6.5 3.  5.8 2.2]\n",
      " [7.6 3.  6.6 2.1]\n",
      " [4.9 2.5 4.5 1.7]\n",
      " [7.3 2.9 6.3 1.8]\n",
      " [6.7 2.5 5.8 1.8]\n",
      " [7.2 3.6 6.1 2.5]\n",
      " [6.5 3.2 5.1 2. ]\n",
      " [6.4 2.7 5.3 1.9]\n",
      " [6.8 3.  5.5 2.1]\n",
      " [5.7 2.5 5.  2. ]\n",
      " [5.8 2.8 5.1 2.4]\n",
      " [6.4 3.2 5.3 2.3]\n",
      " [6.5 3.  5.5 1.8]\n",
      " [7.7 3.8 6.7 2.2]\n",
      " [7.7 2.6 6.9 2.3]\n",
      " [6.  2.2 5.  1.5]\n",
      " [6.9 3.2 5.7 2.3]\n",
      " [5.6 2.8 4.9 2. ]\n",
      " [7.7 2.8 6.7 2. ]\n",
      " [6.3 2.7 4.9 1.8]\n",
      " [6.7 3.3 5.7 2.1]\n",
      " [7.2 3.2 6.  1.8]\n",
      " [6.2 2.8 4.8 1.8]\n",
      " [6.1 3.  4.9 1.8]\n",
      " [6.4 2.8 5.6 2.1]\n",
      " [7.2 3.  5.8 1.6]\n",
      " [7.4 2.8 6.1 1.9]\n",
      " [7.9 3.8 6.4 2. ]\n",
      " [6.4 2.8 5.6 2.2]\n",
      " [6.3 2.8 5.1 1.5]\n",
      " [6.1 2.6 5.6 1.4]\n",
      " [7.7 3.  6.1 2.3]\n",
      " [6.3 3.4 5.6 2.4]\n",
      " [6.4 3.1 5.5 1.8]\n",
      " [6.  3.  4.8 1.8]\n",
      " [6.9 3.1 5.4 2.1]\n",
      " [6.7 3.1 5.6 2.4]\n",
      " [6.9 3.1 5.1 2.3]\n",
      " [5.8 2.7 5.1 1.9]\n",
      " [6.8 3.2 5.9 2.3]\n",
      " [6.7 3.3 5.7 2.5]\n",
      " [6.7 3.  5.2 2.3]\n",
      " [6.3 2.5 5.  1.9]\n",
      " [6.5 3.  5.2 2. ]\n",
      " [6.2 3.4 5.4 2.3]\n",
      " [5.9 3.  5.1 1.8]]\n",
      "---------------\n",
      "数据集目标值： [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n",
      " 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1\n",
      " 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2\n",
      " 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\n",
      " 2 2]\n",
      "---------------\n",
      "数据集特征值名字： ['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)']\n",
      "---------------\n",
      "数据集目标值名字： ['setosa' 'versicolor' 'virginica']\n",
      "---------------\n",
      "数据集描述： .. _iris_dataset:\n",
      "\n",
      "Iris plants dataset\n",
      "--------------------\n",
      "\n",
      "**Data Set Characteristics:**\n",
      "\n",
      "    :Number of Instances: 150 (50 in each of three classes)\n",
      "    :Number of Attributes: 4 numeric, predictive attributes and the class\n",
      "    :Attribute Information:\n",
      "        - sepal length in cm\n",
      "        - sepal width in cm\n",
      "        - petal length in cm\n",
      "        - petal width in cm\n",
      "        - class:\n",
      "                - Iris-Setosa\n",
      "                - Iris-Versicolour\n",
      "                - Iris-Virginica\n",
      "                \n",
      "    :Summary Statistics:\n",
      "\n",
      "    ============== ==== ==== ======= ===== ====================\n",
      "                    Min  Max   Mean    SD   Class Correlation\n",
      "    ============== ==== ==== ======= ===== ====================\n",
      "    sepal length:   4.3  7.9   5.84   0.83    0.7826\n",
      "    sepal width:    2.0  4.4   3.05   0.43   -0.4194\n",
      "    petal length:   1.0  6.9   3.76   1.76    0.9490  (high!)\n",
      "    petal width:    0.1  2.5   1.20   0.76    0.9565  (high!)\n",
      "    ============== ==== ==== ======= ===== ====================\n",
      "\n",
      "    :Missing Attribute Values: None\n",
      "    :Class Distribution: 33.3% for each of 3 classes.\n",
      "    :Creator: R.A. Fisher\n",
      "    :Donor: Michael Marshall (MARSHALL%PLU@io.arc.nasa.gov)\n",
      "    :Date: July, 1988\n",
      "\n",
      "The famous Iris database, first used by Sir R.A. Fisher. The dataset is taken\n",
      "from Fisher's paper. Note that it's the same as in R, but not as in the UCI\n",
      "Machine Learning Repository, which has two wrong data points.\n",
      "\n",
      "This is perhaps the best known database to be found in the\n",
      "pattern recognition literature.  Fisher's paper is a classic in the field and\n",
      "is referenced frequently to this day.  (See Duda & Hart, for example.)  The\n",
      "data set contains 3 classes of 50 instances each, where each class refers to a\n",
      "type of iris plant.  One class is linearly separable from the other 2; the\n",
      "latter are NOT linearly separable from each other.\n",
      "\n",
      ".. topic:: References\n",
      "\n",
      "   - Fisher, R.A. \"The use of multiple measurements in taxonomic problems\"\n",
      "     Annual Eugenics, 7, Part II, 179-188 (1936); also in \"Contributions to\n",
      "     Mathematical Statistics\" (John Wiley, NY, 1950).\n",
      "   - Duda, R.O., & Hart, P.E. (1973) Pattern Classification and Scene Analysis.\n",
      "     (Q327.D83) John Wiley & Sons.  ISBN 0-471-22361-1.  See page 218.\n",
      "   - Dasarathy, B.V. (1980) \"Nosing Around the Neighborhood: A New System\n",
      "     Structure and Classification Rule for Recognition in Partially Exposed\n",
      "     Environments\".  IEEE Transactions on Pattern Analysis and Machine\n",
      "     Intelligence, Vol. PAMI-2, No. 1, 67-71.\n",
      "   - Gates, G.W. (1972) \"The Reduced Nearest Neighbor Rule\".  IEEE Transactions\n",
      "     on Information Theory, May 1972, 431-433.\n",
      "   - See also: 1988 MLC Proceedings, 54-64.  Cheeseman et al\"s AUTOCLASS II\n",
      "     conceptual clustering system finds 3 classes in the data.\n",
      "   - Many, many more ...\n"
     ]
    }
   ],
   "source": [
    "import seaborn as sns\n",
    "import matplotlib.pyplot as plt\n",
    "import pandas as pd\n",
    "\n",
    "from sklearn.datasets import load_iris, fetch_20newsgroups\n",
    "\n",
    "# 读取小数据集的方法\n",
    "iris = load_iris()\n",
    "# print(iris)\n",
    "\n",
    "# 读取大数据集\n",
    "# news = fetch_20newsgroups()\n",
    "# print(news)\n",
    "\n",
    "print(\"数据集特征值：\", iris.data)  # iris[\"data\"]\n",
    "print(\"---------------\")\n",
    "print(\"数据集目标值：\", iris[\"target\"])\n",
    "print(\"---------------\")\n",
    "print(\"数据集特征值名字：\", iris.feature_names)\n",
    "print(\"---------------\")\n",
    "print(\"数据集目标值名字：\", iris.target_names)\n",
    "print(\"---------------\")\n",
    "print(\"数据集描述：\", iris.DESCR)\n",
    "\n",
    "\n",
    "\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "bfced6e5",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 数据可视化\n",
    "\n",
    "# 先定义一个公共方法\n",
    "def irisPlot(data, col1, col2):\n",
    "    sns.lmplot(data=data, x=col1, y=col2, hue=\"target\", fit_reg=False)\n",
    "    plt.title(\"鸢尾花数据展示\")\n",
    "    plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "52d81231",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "F:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\axisgrid.py:118: UserWarning: The figure layout has changed to tight\n",
      "  self._figure.tight_layout(*args, **kwargs)\n",
      "F:\\ProgramData\\anaconda3\\Lib\\site-packages\\IPython\\core\\pylabtools.py:152: UserWarning: Glyph 40482 (\\N{CJK UNIFIED IDEOGRAPH-9E22}) missing from current font.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "F:\\ProgramData\\anaconda3\\Lib\\site-packages\\IPython\\core\\pylabtools.py:152: UserWarning: Glyph 23614 (\\N{CJK UNIFIED IDEOGRAPH-5C3E}) missing from current font.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "F:\\ProgramData\\anaconda3\\Lib\\site-packages\\IPython\\core\\pylabtools.py:152: UserWarning: Glyph 33457 (\\N{CJK UNIFIED IDEOGRAPH-82B1}) missing from current font.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "F:\\ProgramData\\anaconda3\\Lib\\site-packages\\IPython\\core\\pylabtools.py:152: UserWarning: Glyph 25968 (\\N{CJK UNIFIED IDEOGRAPH-6570}) missing from current font.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "F:\\ProgramData\\anaconda3\\Lib\\site-packages\\IPython\\core\\pylabtools.py:152: UserWarning: Glyph 25454 (\\N{CJK UNIFIED IDEOGRAPH-636E}) missing from current font.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "F:\\ProgramData\\anaconda3\\Lib\\site-packages\\IPython\\core\\pylabtools.py:152: UserWarning: Glyph 23637 (\\N{CJK UNIFIED IDEOGRAPH-5C55}) missing from current font.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "F:\\ProgramData\\anaconda3\\Lib\\site-packages\\IPython\\core\\pylabtools.py:152: UserWarning: Glyph 31034 (\\N{CJK UNIFIED IDEOGRAPH-793A}) missing from current font.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n"
     ]
    },
    {
     "data": {
      "image/png": "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Xn31VUiShC1btoReu3PnTlx55ZXIz8/HwIEDcdNNN+HYsWM9xvPpp58mtI5xv1M5HA6sX7++2/T169fD4dAbuamqGnafE6KMFtaAL5IUNOAjooy2bNkylJeX47bbbkNdXR3q6uowZMgQDBkyBC+99BJ27tyJ+++/H4sXLw6dJAj697//jV27duHdd9/FP/7xDzQ1NeGaa67BhAkTsHnzZvzyl7/Ej3/847DX1NXVYerUqTjzzDOxceNGvPXWWzh69Ci+8Y1v9BjP0KGJvcfFfSnnrrvuwrx587Bp0yace+65kCQJH330EZ599lksXrwYAPD222/jrLN4YyRKMbPuFGpkAz4g/pJjIspYbrcbNpsNTqcTgwYNCk1/8MEHQ/8uLS3F+vXr8dJLL4USCADIy8vDs88+G7qE89RTT0GSJDzzzDNwOBwYO3YsDh06FHYvsuXLl+Pss8/Gww8/HJr2xz/+EUOHDkVNTQ3KysoixpOIuN/lfvazn6G0tBS///3v8fzzzwMARo8ejWeeeQbf+c53AADz5s3DHXfcYUigRFExs7eKUQ34gMRKjoko6zz11FN49tln8dlnn6G1tRV+vx9nnnlm2DwTJkwIG1eye/duTJw4MXSVAwDOO++8sNds2rQJa9asQX5+fre/uW/fvtAlISMl9PXrxhtvxI033tjj853vCkuUdD01rztarU9PRRPAkjMAhztyAz6HW3++L4mWHBNRVnnppZewcOFC/Nd//RfKy8tRUFCARx99FBs2bAibr+sNUTVN63bbj67t81RVxTXXXINHHnmk298tKSkxaA3CJXxe2O/3o76+Hqqqhk0/7bTTEl00UfRUVT9T4jsZ3rwuJ1e/0VhTnf788IuSd1knGINsBQZOiNyAr68YupUcB980OhIUxac/f/6dvKxDlKVsNhsU5cuxbO+99x4qKipw5513hqbt27evz+V85StfwQsvvACfzxcaD7px48awec4++2y8/PLLGD58OKzWyO85XeNJVNzv0Hv27MFFF12E3NxcDBs2DKWlpSgtLcXw4cNRWlpqWIBEUYmleV0qYgg24CsYqD/KcnQx9FVybOlUckxEWWn48OHYsGEDPv30Uxw7dgyjRo3Cxo0b8fbbb6OmpgY///nP8fHHH/e5nO985ztQVRXf+973sGvXLrz99tv4zW9+AwChMynz58/HiRMn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pptuQl1dHdxuNyZOnIi33noLl112mZlhUbxGTAWGX8Q7vxIRUdyEG2MSC44xISIiyiz8KktERETCYGJCREREwmBiQkRERMJgYkJERETCYGJCREREwmBiQkRERMJgYkJERETCYGJCREREwmBiQkRERMJgYkJERETCYGJCREREwmBiQkRERMJgYkJERETCYGJCREREwmBiQkRERMJgYkJERETCYGJCREREwmBiQkRERMJgYkJERETCYGJCREREwmBiQkRERMJgYkJERETCYGJCREREwmBiQkRERMJgYkJERETCYGJCREREwmBiQkRERMJgYkJERETCYGJCREREwmBiQkRERMJgYkJERETCYGJCREREwmBiQkRERMJgYkJERETCYGJCREREwmBiQkRERMJgYkJERETCYGJCREREwmBiQkRERMJgYkJERETCYGJCREREwmBiQkRERMJgYkJERETCYGJCREREwmBiQkRERMJgYkJERETCYGJCREREwmBiQkRERMJgYkJERETCYGJCREREwmBiQkRERMJgYkJERETCYGJCREREwmBiQkRERMIwNTFZunQpzj33XBQUFKC4uBjXXXcddu/ebWZIREREZCJTE5OqqirMnz8fH374Id59910EAgFcfvnlaG5uNjMsIiIiMomkaZpmdhBBX3zxBYqLi1FVVYUpU6b0Ob/X64Xb7YbH44HL5UpBhERERJRMVrMD6Mzj8QAA+vfvH/F5n88Hn88X+t3r9aYkLiIiIkoNYQa/apqGe++9FxdeeCHGjx8fcZ6lS5fC7XaHfoYOHZriKImIiCiZhLmUM3/+fPzzn//EunXrMGTIkIjzRDpjMnToUF7KISIiyhBCXMq566678Nprr2Ht2rU9JiUAYLfbYbfbUxgZEZlNVTVUH/biRIsf/Z02jBvsgixLZoeVctwOlC1MTUw0TcNdd92F1atXo7KyEqWlpWaGQ0SCWb/3GJZX7cO++pNoVzTkWCSMLM7HHVNHomJUkdnhpQy3A2UTUy/l3Hnnnfjzn/+Mv//97xg9enRoutvtRm5ubp+vZ1UOUeZav/cYFq/ejpO+APo5bbBZZPgVFQ0t7ci3W/Dw1yZkxYcytwNlG1MHvy5fvhwejwfTpk1DSUlJ6Ocvf/mLmWERkclUVcPyqn046QtgkMsBR44FsizBkWPBIJcdJ30Kllftg6oK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Vq1a1efr2cSPiFKBd34lSh12FyYiIiJhcIwJERERCYOJCREREQmDiQkREREJg4kJERERCYOJCREREQmDiQkREREJg4kJERERCYOJCREREQmDiQkREREJg4kJERERCYOJCREREQmDiQkREREJw2p2AIkI9h/0er0mR0JERJSYgoICSBK7Vqd1YtLU1AQAGDp0qMmREBERJcbj8cDlcpkdhukkLXjaIQ2pqorDhw8blmV6vV4MHToUBw8e5MGRAG5H43BbGoPb0RjcjsaJtC15xkSX1mdMZFnGkCFDDF+uy+XifzoDcDsah9vSGNyOxuB2NA63ZXcc/EpERETCYGJCREREwmBi0ondbscDDzwAu91udihpjdvRONyWxuB2NAa3o3G4LXuW1oNfiYiIKLPwjAkREREJg4kJERERCYOJCREREQmDiQkREREJI2sSk6VLl+Lcc89FQUEBiouLcd1112H37t19vq6qqgrnnHMOHA4HRowYgaeeeioF0Yornu1YWVkJSZK6/fzf//1fiqIW0/LlyzFx4sTQDZbKy8vx5ptv9voaHo/dxbodeTxGZ+nSpZAkCffcc0+v8/GY7F0025HHZLisSUyqqqowf/58fPjhh3j33XcRCARw+eWXo7m5ucfX1NbW4sorr8RFF12ETz75BIsXL8bdd9+Nl19+OYWRiyWe7Ri0e/du1NXVhX5OP/30FEQsriFDhuDXv/41Nm7ciI0bN+Liiy/Gtddei+rq6ojz83iMLNbtGMTjsWcff/wxVqxYgYkTJ/Y6H4/J3kW7HYN4THbQslR9fb0GQKuqqupxnh/96EfaV77ylbBpt99+u3b++ecnO7y0Ec12XLNmjQZAa2hoSF1gaapfv37as88+G/E5Ho/R62078njsXVNTk3b66adr7777rjZ16lRtwYIFPc7LY7JnsWxHHpPhsuaMSVcejwcA0L9//x7n+eCDD3D55ZeHTZsxYwY2btyI9vb2pMaXLqLZjkFnnXUWSkpKcMkll2DNmjXJDi2tKIqCF198Ec3NzSgvL484D4/HvkWzHYN4PEY2f/58XHXVVbj00kv7nJfHZM9i2Y5BPCZ1ad3EL16apuHee+/FhRdeiPHjx/c435EjRzBw4MCwaQMHDkQgEMCxY8dQUlKS7FCFFu12LCkpwYoVK3DOOefA5/Ph+eefxyWXXILKykpMmTIl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",
      "text/plain": [
       "<Figure size 558.875x500 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "iris_d = pd.DataFrame(data=iris.data,columns=[\"Sepal_Length\", \"Sepal_Width\", \"Petal_Length\", \"Petal_Width\"])\n",
    "iris_d[\"target\"] = iris.target\n",
    "\n",
    "irisPlot(iris_d,\"Sepal_Width\", \"Petal_Length\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "b21bd591",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "训练集特征值x_train= [[4.8 3.1 1.6 0.2]\n",
      " [5.4 3.4 1.5 0.4]\n",
      " [5.5 2.5 4.  1.3]\n",
      " [5.5 2.6 4.4 1.2]\n",
      " [5.7 2.8 4.5 1.3]\n",
      " [5.  3.4 1.6 0.4]\n",
      " [5.1 3.4 1.5 0.2]\n",
      " [4.9 3.6 1.4 0.1]\n",
      " [6.9 3.1 5.4 2.1]\n",
      " [6.7 2.5 5.8 1.8]\n",
      " [7.  3.2 4.7 1.4]\n",
      " [6.3 3.3 4.7 1.6]\n",
      " [5.4 3.9 1.3 0.4]\n",
      " [4.4 3.2 1.3 0.2]\n",
      " [6.7 3.  5.  1.7]\n",
      " [5.6 3.  4.1 1.3]\n",
      " [5.7 2.5 5.  2. ]\n",
      " [6.5 3.  5.8 2.2]\n",
      " [5.  3.6 1.4 0.2]\n",
      " [6.1 2.8 4.  1.3]\n",
      " [6.  3.4 4.5 1.6]\n",
      " [6.7 3.  5.2 2.3]\n",
      " [5.7 4.4 1.5 0.4]\n",
      " [5.4 3.4 1.7 0.2]\n",
      " [5.  3.5 1.3 0.3]\n",
      " [4.8 3.  1.4 0.1]\n",
      " [5.5 4.2 1.4 0.2]\n",
      " [4.6 3.6 1.  0.2]\n",
      " [7.2 3.2 6.  1.8]\n",
      " [5.1 2.5 3.  1.1]\n",
      " [6.4 3.2 4.5 1.5]\n",
      " [7.3 2.9 6.3 1.8]\n",
      " [4.5 2.3 1.3 0.3]\n",
      " [5.  3.  1.6 0.2]\n",
      " [5.7 3.8 1.7 0.3]\n",
      " [5.  3.3 1.4 0.2]\n",
      " [6.2 2.2 4.5 1.5]\n",
      " [5.1 3.5 1.4 0.2]\n",
      " [6.4 2.9 4.3 1.3]\n",
      " [4.9 2.4 3.3 1. ]\n",
      " [6.3 2.5 4.9 1.5]\n",
      " [6.1 2.8 4.7 1.2]\n",
      " [5.9 3.2 4.8 1.8]\n",
      " [5.4 3.9 1.7 0.4]\n",
      " [6.  2.2 4.  1. ]\n",
      " [6.4 2.8 5.6 2.1]\n",
      " [4.8 3.4 1.9 0.2]\n",
      " [6.4 3.1 5.5 1.8]\n",
      " [5.9 3.  4.2 1.5]\n",
      " [6.5 3.  5.5 1.8]\n",
      " [6.  2.9 4.5 1.5]\n",
      " [5.5 2.4 3.8 1.1]\n",
      " [6.2 2.9 4.3 1.3]\n",
      " [5.2 4.1 1.5 0.1]\n",
      " [5.2 3.4 1.4 0.2]\n",
      " [7.7 2.6 6.9 2.3]\n",
      " [5.7 2.6 3.5 1. ]\n",
      " [4.6 3.4 1.4 0.3]\n",
      " [5.8 2.7 4.1 1. ]\n",
      " [5.8 2.7 3.9 1.2]\n",
      " [6.2 3.4 5.4 2.3]\n",
      " [5.9 3.  5.1 1.8]\n",
      " [4.6 3.1 1.5 0.2]\n",
      " [5.8 2.8 5.1 2.4]\n",
      " [5.1 3.5 1.4 0.3]\n",
      " [6.8 3.2 5.9 2.3]\n",
      " [4.9 3.1 1.5 0.1]\n",
      " [5.5 2.3 4.  1.3]\n",
      " [5.1 3.7 1.5 0.4]\n",
      " [5.8 2.7 5.1 1.9]\n",
      " [6.7 3.1 4.4 1.4]\n",
      " [6.8 3.  5.5 2.1]\n",
      " [5.2 2.7 3.9 1.4]\n",
      " [6.7 3.1 5.6 2.4]\n",
      " [5.3 3.7 1.5 0.2]\n",
      " [5.  2.  3.5 1. ]\n",
      " [6.6 2.9 4.6 1.3]\n",
      " [6.  2.7 5.1 1.6]\n",
      " [6.3 2.3 4.4 1.3]\n",
      " [7.7 3.  6.1 2.3]\n",
      " [4.9 3.  1.4 0.2]\n",
      " [4.6 3.2 1.4 0.2]\n",
      " [6.3 2.7 4.9 1.8]\n",
      " [6.6 3.  4.4 1.4]\n",
      " [6.9 3.1 4.9 1.5]\n",
      " [4.3 3.  1.1 0.1]\n",
      " [5.6 2.7 4.2 1.3]\n",
      " [4.8 3.4 1.6 0.2]\n",
      " [7.6 3.  6.6 2.1]\n",
      " [7.7 2.8 6.7 2. ]\n",
      " [4.9 2.5 4.5 1.7]\n",
      " [6.5 3.2 5.1 2. ]\n",
      " [5.1 3.3 1.7 0.5]\n",
      " [6.3 2.9 5.6 1.8]\n",
      " [6.1 2.6 5.6 1.4]\n",
      " [5.  3.4 1.5 0.2]\n",
      " [6.1 3.  4.6 1.4]\n",
      " [5.6 3.  4.5 1.5]\n",
      " [5.1 3.8 1.5 0.3]\n",
      " [5.6 2.8 4.9 2. ]\n",
      " [4.4 3.  1.3 0.2]\n",
      " [5.5 2.4 3.7 1. ]\n",
      " [4.7 3.2 1.6 0.2]\n",
      " [6.7 3.3 5.7 2.5]\n",
      " [5.2 3.5 1.5 0.2]\n",
      " [6.4 2.7 5.3 1.9]\n",
      " [6.3 2.8 5.1 1.5]\n",
      " [4.4 2.9 1.4 0.2]\n",
      " [6.1 3.  4.9 1.8]\n",
      " [4.9 3.1 1.5 0.2]\n",
      " [5.  2.3 3.3 1. ]\n",
      " [4.8 3.  1.4 0.3]\n",
      " [5.8 4.  1.2 0.2]\n",
      " [6.3 3.4 5.6 2.4]\n",
      " [5.4 3.  4.5 1.5]\n",
      " [7.1 3.  5.9 2.1]\n",
      " [6.3 3.3 6.  2.5]\n",
      " [5.1 3.8 1.9 0.4]\n",
      " [6.4 2.8 5.6 2.2]\n",
      " [7.7 3.8 6.7 2.2]]\n",
      "测试集特征值x_train= [[5.4 3.7 1.5 0.2]\n",
      " [6.4 3.2 5.3 2.3]\n",
      " [6.5 2.8 4.6 1.5]\n",
      " [6.3 2.5 5.  1.9]\n",
      " [6.1 2.9 4.7 1.4]\n",
      " [6.8 2.8 4.8 1.4]\n",
      " [6.7 3.1 4.7 1.5]\n",
      " [6.  3.  4.8 1.8]\n",
      " [5.6 2.9 3.6 1.3]\n",
      " [5.  3.2 1.2 0.2]\n",
      " [6.9 3.2 5.7 2.3]\n",
      " [5.7 3.  4.2 1.2]\n",
      " [7.4 2.8 6.1 1.9]\n",
      " [7.2 3.6 6.1 2.5]\n",
      " [5.  3.5 1.6 0.6]\n",
      " [7.9 3.8 6.4 2. ]\n",
      " [5.6 2.5 3.9 1.1]\n",
      " [5.7 2.8 4.1 1.3]\n",
      " [6.  2.2 5.  1.5]\n",
      " [5.7 2.9 4.2 1.3]\n",
      " [5.1 3.8 1.6 0.2]\n",
      " [6.9 3.1 5.1 2.3]\n",
      " [5.5 3.5 1.3 0.2]\n",
      " [5.8 2.6 4.  1.2]\n",
      " [5.8 2.7 5.1 1.9]\n",
      " [4.7 3.2 1.3 0.2]\n",
      " [7.2 3.  5.8 1.6]\n",
      " [6.5 3.  5.2 2. ]\n",
      " [6.7 3.3 5.7 2.1]\n",
      " [6.2 2.8 4.8 1.8]]\n",
      "训练集目标值x_train= [0 0 1 1 1 0 0 0 2 2 1 1 0 0 1 1 2 2 0 1 1 2 0 0 0 0 0 0 2 1 1 2 0 0 0 0 1\n",
      " 0 1 1 1 1 1 0 1 2 0 2 1 2 1 1 1 0 0 2 1 0 1 1 2 2 0 2 0 2 0 1 0 2 1 2 1 2\n",
      " 0 1 1 1 1 2 0 0 2 1 1 0 1 0 2 2 2 2 0 2 2 0 1 1 0 2 0 1 0 2 0 2 2 0 2 0 1\n",
      " 0 0 2 1 2 2 0 2 2]\n",
      "测试集目标值x_train= [0 2 1 2 1 1 1 2 1 0 2 1 2 2 0 2 1 1 2 1 0 2 0 1 2 0 2 2 2 2]\n"
     ]
    }
   ],
   "source": [
    "from sklearn.model_selection import train_test_split\n",
    "\n",
    "x_train,x_test,y_train,y_test=train_test_split(iris.data,iris.target,test_size=0.2,random_state=22)\n",
    "print(\"训练集特征值x_train=\",x_train)\n",
    "print(\"测试集特征值x_test=\",x_test)\n",
    "print(\"训练集目标值y_train=\",y_train)\n",
    "print(\"测试集目标值y_test=\",y_test)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "911ab7fe",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "训练集目标值x_train形状 (120,)\n",
      "测试集目标值x_train形状 (30,)\n"
     ]
    }
   ],
   "source": [
    "print(\"训练集目标值x_train形状\",y_train.shape)\n",
    "print(\"测试集目标值x_test形状\",y_test.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "968a3f33",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.11.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
